/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package byblos.apresentacao.site;

import byblos.apresentacao.idioma.InterceptadorIdioma;
import byblos.negocio.Idioma;
import byblos.negocio.acomodacao.CategoriaAcomodacao;
import byblos.negocio.objeto.TipoObjeto;
import byblos.negocio.pacote.Pacote;
import byblos.negocio.reserva.AcomodacaoOnline;
import byblos.negocio.reserva.Reserva;
import byblos.persistencia.DAO;
import java.util.List;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.In;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.annotations.Out;
import org.vraptor.annotations.Parameter;

/**
 *
 * @author helena
 */
@Component
@InterceptedBy(InterceptadorIdioma.class)
public class SiteReservaConfirmarComponent {

    @Out
    @Parameter(create = true)
    private Reserva reserva;
    @Out
    private List<Pacote> pacotes;
    @In
    private Idioma idioma;
    @Parameter
    private Integer acomodacaoOnlineId;
    @Parameter
    private Integer categoriaAcomodacaoId;
    @Parameter
    private Integer pacoteId;

    public void confirmar() {
        montarReserva();
        pacotes = new DAO().listar(Pacote.class, "ObjetoPorTipoIdioma", TipoObjeto.PACOTE, idioma);
        pacotes.remove(reserva.getPacote());
    }

    private void montarReserva() {
        if (acomodacaoOnlineId != null) {
            reserva.setAcomodacaoOnline(new DAO().localizar(AcomodacaoOnline.class, acomodacaoOnlineId));
        }
        if (categoriaAcomodacaoId != null) {
            reserva.setCategoriaAcomodacao(new DAO().localizar(CategoriaAcomodacao.class, categoriaAcomodacaoId));
        }
        if (pacoteId != null) {
            reserva.setPacote(new DAO().localizar(Pacote.class, pacoteId));
        }
    }
}
